package com.ruoyi.business.utils;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

import java.io.File;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;

public class CreateQRCode {


    public static Object CreateQRCode(String contents) {
        int width = 300;        //定义图片宽度
        int height = 300;       //定义图片高度
        String format = "png";      //定义图片格式
//        String content = "https://blog.csdn.net/weixin_45537947";     //定义二维码内容
        String content = contents;     //定义二维码内容
        //定义二维码的参数
        HashMap hashMap = new HashMap();
        hashMap.put(EncodeHintType.CHARACTER_SET, "utf-8");     //设置编码
        hashMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);       //设置容错等级，等级越高，容量越小
        hashMap.put(EncodeHintType.MARGIN, 2);          //设置边距
        //生成二维码
        try {
            //生成矩阵
            //                                                   内容              格式          宽       高
            BitMatrix bitMatrix = new MultiFormatWriter().encode(String.valueOf(content), BarcodeFormat.QR_CODE, width, height, hashMap);
            Path file = new File("D:/image/img.png").toPath();        //设置路径
            MatrixToImageWriter.writeToPath(bitMatrix, format, file);       //输出图像
         System.out.println(file);
         return file;

        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

}
